﻿package joystick.events 
{
	import flash.events.Event;
	import joystick.JoystickState;
	import joystick.Packet;
	
	/**
	 * JoyClient が発行するイベント
	 * @author Hikipuro
	 */
	public class JoyClientEvent extends Event
	{
		/**
		 * 接続完了イベント
		 */
		public static const CONNECTED:String = "clientConnected";
		
		/**
		 * 切断イベント
		 */
		public static const CLOSED:String = "clientClosed";
		
		/**
		 * IO エラーイベント
		 */
		public static const IO_ERROR:String = "clientIoError";
		
		/**
		 * セキュリティエラーイベント
		 */
		public static const SECURITY_ERROR:String = "clientSecurityError";
		
		/**
		 * パケット送信済みイベント
		 */
		public static const PACKET_SENT:String = "clientPacketSent";
		
		/**
		 * パケット受信済みイベント
		 */
		public static const PACKET_RECEIVED:String = "clientPacketReceived";
		
		/**
		 * デバイスリストパケット受信済みイベント
		 */
		public static const DEVICE_LIST:String = "clientDeviceList";
		
		// --------------------------------------------------------------------
		
		/**
		 * メッセージ
		 */
		public var text:String = "";
		
		/**
		 * 受信したジョイスティックの状態
		 */
		public var state:JoystickState;
		
		/**
		 * 受信したデバイスリスト
		 */
		public var deviceList:Array;
		
		// --------------------------------------------------------------------
		
		/**
		 * コンストラクタ
		 * @param	type
		 * @param	bubbles
		 * @param	cancelable
		 */
		public function JoyClientEvent(
			type:String, 
			bubbles:Boolean = false, 
			cancelable:Boolean = false) 
		{
			super(type, bubbles, cancelable);
			this.state = null;
			this.deviceList = null;
		}
		
	}
	
}